package Gerenciar;

//import bd.Conexao;
import bd.Conexao;
import classes.Telefone;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class GerenciarTelefone{ 

    public static boolean gravar(Telefone telefone,int idCliente){
        if (telefone.getId() > 0){
            return alterar(telefone);
        }else{
            return inserir(telefone,idCliente);
        }
    }
    
    private static boolean inserir(Telefone telefone,int idCliente){
        String sql="INSERT INTO  telefone(numero, fkidtipotelefone,fkidcliente) VALUES(";
        sql+="'"+telefone.getNumero()+"',";
        sql+="'"+telefone.getTipoTelefone().getId()+"',";
        sql+="'"+idCliente+"')";
        return Conexao.getInstance().executarDiu(sql);
    }
    
    public static List<Telefone> trazerTelefonesDoCliente(int idcliente){
        List<Telefone> listaRetorno= new ArrayList<>();
        String sql="select t.*,tt.descricao from telefone as t inner join tipotelefone as tt on t.fkidtipotelefone = tt.id where fkidcliente ="+idcliente;  
        ResultSet rs=Conexao.getInstance().selecionar(sql);
        try {
            while (rs.next()) {
                Telefone telefone=new Telefone();
                telefone.setId(rs.getInt("id"));
                telefone.setNumero(rs.getString("numero"));
                telefone.getTipoTelefone().setId(rs.getInt("fkidtipotelefone"));
                telefone.getTipoTelefone().setDescricao(rs.getString("descricao"));
                listaRetorno.add(telefone);
            }
        } catch (SQLException ex) {
            Logger.getLogger(GerenciarTipoTelefone.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listaRetorno;
    }

    public static boolean excluir(int idtelefone) {
        String sql="Delete from telefone where id = "+idtelefone;
        return Conexao.getInstance().executarDiu(sql);
    }

    private static boolean alterar(Telefone telefone) {
        String sql="UPDATE telefone SET ";
        sql+="numero = '"+telefone.getNumero()+"', ";
        sql+="fkidtipotelefone = '"+telefone.getTipoTelefone().getId()+"' ";
        sql+="WHERE id="+telefone.getId();
        return Conexao.getInstance().executarDiu(sql);
    }
    public static boolean excluirTodos(int idCliente) {
        String sql="Delete from telefone where fkidcliente = "+idCliente;
        return Conexao.getInstance().executarDiu(sql);
    }
}
